A. Technical Field
The present invention pertains generally to data analysis and display, and relates more particularly to determining and displaying relevance of objects.
B. Background of the Invention
Modern enterprise software applications typically are deployed onto a multi-tier (n-tier) client-server software architecture in which presentation, data processing, and data storage are logically separate processes. The most common implementation of an n-tier software architecture is the 3-tier architecture, where application integration, co-ordination, and processing are performed in the middle tier by a software application server and associated software components. The application server and associated software components in the middle tier may be called middleware, and the multi-tier software architecture may be called an application server framework.
Although a variety of application server framework implementations exist, the most common implementations are Java-based J2EE (Java 2 Enterprise Edition) application server frameworks in which the software components are implemented in the Java language. The enterprise applications that are deployed into a J2EE application server framework are implemented as associated sets of Java objects that provide application programming interfaces (APIs) to other applications for access to their services (i.e., their execution of tasks and/or functions). A deployed Java object can be considered to be a re-usable application building block that can participate in multiple types of associations to provide access to a variety of services.
A typical J2EE enterprise application framework hosts a large variety and number of deployed Java objects, and a key role of an application server is runtime management of deployed Java objects and the access to their interfaces. This runtime management is based on sets of configuration data files, which describe and define properties of the applications, objects, and interfaces that are currently deployed into the framework. Software application developers and enterprise architecture administrators are able to access framework runtime configuration data via displays provided by the application server administration console user interface (UI).
When a newly developed J2EE application is deployed, the associated objects and data components necessary to execute the application within the application framework are organized into a structured file hierarchy and packaged as a data archive. Examples of J2EE application data archives are JAR (Java ARchive), containing Java classes and associated data; WAR (Web ARchive), containing Java classes and other components, such as Java servlets and Java Server Pages (JSPs), used to execute web applications; and EAR (Enterprise ARchive), containing JAR and WAR files, used to execute enterprise applications. An application is deployed into an application server framework when its data archive is provided to the application server. The application server updates the framework configuration data to reflect the presence of the new application and enables runtime access to the application objects and interfaces.
Since application objects are meant to be re-usable, designing a new application will most likely include creating associations between at least some of the newly created application objects and objects that already are deployed into the framework. An application developer may use the application server UIs to identify the currently deployed objects, and the developer may make application design decisions based on which deployed objects are available for re-use. The choice of whether to re-use an object may be based on design usage patterns among the objects that already are deployed into the framework.
The application server UIs available to a developer typically display deployed objects alphabetically by name, deployment state (e.g., currently deployed), and/or object type. Since each deployed application contains many objects and many applications are hosted on a typical enterprise application framework, there may be a very large number of currently deployed objects being hosted by the application server at any given time. Design usage patterns among the objects are difficult to identify based on such an object listing displays. Current runtime configuration data also would not include design usage pattern information, since it is derived from the configuration files associated with the Java Virtual Machine (JVM). Discovery of design usage pattern information enables an application developer to design and develop new applications with optimal speed and efficiency.